<?php

function verificarCpf() {

// Primeiramente você precisará pegar o número do CPF digitado pelo usuário no form, para isso utilize $_POST["cpf"]
    $cpf = $_POST["cpf"]; // onde $_POST["cpf"] se refere ao nome do campo onde o usuário digitou o CPF
// Agora vamos verificar se os dados do campo do CPF são apenas números
    if (!is_numeric($cpf)) {
        $status = FALSE;
        // Caso os dados passados não sejam números imprime uma mensagem na tela informando ao usuário que o CPF digitado é inválido
        echo "<script>alert('O número do CPF digitado é inválido, tente novamente.'); window.open('./index.php','_self'); </script>";
        // essa mensagem aparecerá na tela do usuário e quando ele clicar em OK será redirecionado para a última página acessada, no caso, a página de cadastro
    } else {
        // Verifica se todos os números digitados são iguais, caso sejam, faz o mesmo que na condição anterior
        if (($cpf == '11111111111') || ($cpf == '22222222222') ||
                ($cpf == '33333333333') || ($cpf == '44444444444') ||
                ($cpf == '55555555555') || ($cpf == '66666666666') ||
                ($cpf == '77777777777') || ($cpf == '88888888888') ||
                ($cpf == '99999999999') || ($cpf == '00000000000')) {
            $status = FALSE;

            echo "<script>alert('O número do CPF digitado é inválido, tente novamente.'); window.open('./index.php','_self'); </script>";
        } else {
            // Se todos os testes anteriores retonaram true, então será iniciada a verificação dos números
            // Primeiro o script vai pegar o numero do dígito verificador
            $dv_informado = substr($cpf, 9, 2);
            for ($i = 0; $i <= 8; $i++) {
                $digito[$i] = substr($cpf, $i, 1);
            }
            // Agora será calculado o valor do décimo dígito de verificação
            $posicao = 10;
            $soma = 0;
            for ($i = 0; $i <= 8; $i++) {
                $soma = $soma + $digito[$i] * $posicao;
                $posicao = $posicao - 1;
            }
            $digito[9] = $soma % 11;
            if ($digito[9] < 2) {
                $digito[9] = 0;
            } else {
                $digito[9] = 11 - $digito[9];
            }

            // Agora será calculado o valor do décimo primeiro dígito de verificação
            $posicao = 11;
            $soma = 0;

            for ($i = 0; $i <= 9; $i++) {
                $soma = $soma + $digito[$i] * $posicao;
                $posicao = $posicao - 1;
            }
            $digito[10] = $soma % 11;
            if ($digito[10] < 2) {
                $digito[10] = 0;
            } else {
                $digito[10] = 11 - $digito[10];
            }

            // Nesta parte do script será verificado se o dígito verificador é igual ao informado pelo usuário
            $dv = $digito[9] * 10 + $digito[10];
            if ($dv != $dv_informado) {
                $status = FALSE;

                // Se o DV informado for diferente, então o sistema poderá apresentar uma mensagem como as anteriores avisando ao usuário sobre o CPF errado
                echo "<script>alert('O número do CPF digitado é inválido, tente novamente.'); window.open('./index.php','_self'); </script>n";
            }
            else
                $status = TRUE;
            // Caso o resultado seja verdadeiro (true), então você deverá executar a operação principal, como por exemplo, cadastrar o usuário no banco de dados, e isso deverá ser feito dentro desse else
            return $status;
        }
    }
}

?>
